package com.itany.corejava.code09_集合.list集合;

/**
 * @author MissChen
 * @version 1.0
 * @date 2023 年11月20日 15:45
 */

import com.itany.corejava.code08_常用类.包装类.Stu;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Scanner;

/**
 *提示用户输入6名学生的学号和成绩
 * 创建Student（属性:no、score）
 * 将其放入到ArrayList集合中去
 * 1.遍历集合，删除学号为2的学生
 * 2.不遍历集合，删除学号为3的学生(可以考虑重写equals和hashcode方法)
 * 3.不遍历集合，判断此时集合中是否包含学号为5的学生(可以考虑重写equals和hashcode方法)
 *
 */
public class Test07_练习 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        List<Student> list=new ArrayList<>();
        for(int i=0;i<6;i++){
            System.out.println("请输入第"+(i+1)+"个学生的信息");
            System.out.print("请输入学号:");
            String no= scanner.next();
            System.out.print("请输入分数:");
            double score= scanner.nextDouble();
            Student student=new Student(no,score);
            list.add(student);
        }
        System.out.println(list);

        // 遍历集合，删除学号为2的学生
        for(int i=0;i<list.size();i++){
            Student stu=list.get(i);
            if(stu.getNo().equals("2")){
                list.remove(i);
                // list.remove(stu);
            }
        }
        // System.out.println(list);


        // 不遍历集合，删除学号为3的学生(可以考虑重写equals和hashcode方法)
        // Student stu=list.get(2);//获取第三个元素
        // System.out.println(stu);
        // list.remove(stu);
        // System.out.println(list);

        Student stu2=new Student();
        stu2.setNo("3");

        list.remove(stu2);
        System.out.println("删除学号为3的学生后的集合的数据"+list);


        // 不遍历集合，判断此时集合中是否包含学号为5的学生(可以考虑重写equals和hashcode方法)
        Student stu3=new Student();
        stu3.setNo("5");
        System.out.println("判断集合中是否包含学号为5的学生:"+list.contains(stu3));



    }
}
class Student{
    private String no;
    private Double score;

    public Student() {
    }

    public Student(String no, Double score) {
        this.no = no;
        this.score = score;
    }

    public String getNo() {
        return no;
    }

    public void setNo(String no) {
        this.no = no;
    }

    public Double getScore() {
        return score;
    }

    public void setScore(Double score) {
        this.score = score;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Student student = (Student) o;
        return Objects.equals(no, student.no);
    }

    @Override
    public int hashCode() {
        return Objects.hash(no, score);
    }

    @Override
    public String toString() {
        return "Student{" +
                "no='" + no + '\'' +
                ", score=" + score +
                '}';
    }
}
